﻿using System;
using System.Collections.Generic;

using System.Text;
using System.Windows.Input;
using System.Windows;
using Bixas.Tangibilis.Input;
using Bixas.Tangibilis.Utility;

namespace Bixas.Tangibilis
{
    public enum RawTouchCursorOperation
    {
        Add,
        Update,
        Delete
    }

    public class RawTouchCursorInputEventArgs : InputEventArgs
    {
        private TouchCursor _cursor;
        private RawTouchCursorOperation _operation;
        private Window _currentWindow;
        private bool _isPreviewEvent = false;
        private bool _isReady = false;

        public RawTouchCursorInputEventArgs(TouchCursor cursor, int timestamp, Window currentWindow, RawTouchCursorOperation operation)
            : base(null, timestamp)
        {
            _cursor = cursor;
            _currentWindow = currentWindow;
            _operation = operation;
        }

        public Point GetPosition(IInputElement relativeTo)
        {
            return _cursor.GetPosition(relativeTo);
        }

        public TouchCursor Cursor
        {
            get
            {
                return _cursor;
            }
        }
        public RawTouchCursorOperation Operation
        {
            get
            {
                return _operation;
            }
        }
        public Window CurrentWindow
        {
            get
            {
                return _currentWindow;
            }
        }

        public bool IsPreviewEvent
        {
            get
            {
                return _isPreviewEvent;
            }
            set
            {
                _isPreviewEvent = value;
            }
        }

        public bool IsReady
        {
            get
            {
                return _isReady;
            }
            set
            {
                this._isReady = value;
            }
        }
    }
}
